Who am I?
Who are you?
What brought you here?
Internet Mapping Clients: Basic HTML, Javascript, CSS; Google Maps API; OpenLayers javascript library
Geospatial Services Oriented Architectures (SOA)
Open Standards: Open Geospatial Consortium (OGC - WMS, WFS, WCS, KML); Extensible Markup Language (XML)
Desktop client use of Open Standards
Data sharing/publication using Open Standards
What is Internet Mapping?
Definitions
Tools
Use of open standards based remote data and map services in desktop applications
Establishing open standards based services to share geospatial data and mapping capabilities over the Internet
The delivery of mapping and geospatial data tools through web browsers, again based upon open standards
The global computer network of computers that typically connect with each other over TCP/IP
The subset of applications that are run over the Internet, typically using the HTTP protocol in combination with data (HTML, XML, XHTML), presentation (CSS), and behavior (JavaScript) components
The generation of cartographic products that include map images (pictures of geospatial data) and other elements (e.g. legends, tools, scale information, north-arrow)
The development of models (statistical and otherwise) that enable the exploration of geospatial data and testing of hypotheses using those data
While the definition varies from one organization to the next, Open Standards are often characterized by the following:
Ability of systems to share data and information with each other
Commercial Off-the-Shelf Software. Applications that are “purchased” from vendors, often with license terms that restrict the use the software to the specific platform for which it is licensed. Often comes with implicit or explicit technical support
Software licensed under terms that are consistent with the Open Source definition, which includes access to source code, and freedom to modify and redistribute
Actual values associated with geographic locations. For example - numeric elevation values associated with locations within a Digital Elevation Model.
Data about a particular data product or service. Metadata provide critical documentation that supports the discovery and use of data products and data and mapping services
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | |
Content is defined in terms of the structural elements available in HTML/XHTML
<p>...</p> tags<h1>...</h1>, <h2>...</h2>, <h3>...</h3>, etc.<table>...</table> tags<ol>...</ol> or <ul>...</ul> tags, depending upon whether the list is ordered (numbered) or unordered (e.g. bulleted)<form>...</form> tags<div>...</div> tagsModifications to default rendering of HTML/XHTML elements are made through styles defined in CSS
<head> block (the preferred method when doing “real” web development)<head> block of a web pageh1 {color:red; font-size:18px;}Selectors may be based on several criteria
h1, p, table, ul, etc.
<h1>A top level heading</h1>h1 {color:red; font-size:18px}<p id=”para01”>Some text goes here</p>#para01 {color:blue; font-size:12px}<p class=”instructions”>Here are some instructions</p><p class=”instructions”>Here are some more instructions</p>.instructions {color:red; font-size:12px; text-decoration:blink}The most interoperable language for adding dynamic behavior to web sites is Javascript - supported by most browsers on most operating systems
1 2 3 4 5 6 7 8 9 10 11 | |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | |
NAWRS Mapper. HTML: 39 Lines; CSS: 136 Lines; core.js: 515 Lines + Google Maps API and JQuery Framework
What is an API
An Application Programming Interface (API) is a particular set of rules and specifications that a software program can follow to access and make use of the services and resources provided by another particular software program that implements that API. It serves as an interface between different software programs and facilitates their interaction, similar to the way the user interface facilitates interaction between humans and computers. -- From Wikipedia: http://en.wikipedia.org/wiki/Api
Overlay Types documentation
gmaps01.html
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | |
mapPage.css
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | |
mapPage_01.js
1 2 3 4 5 6 7 8 9 10 11 12 | |
gmaps02.html
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | |
mapPage_02.js
1 2 3 4 5 6 7 8 9 10 11 12 | |
gmaps03.html
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | |
mapPage_03.js
1 2 3 4 5 6 7 8 9 10 11 12 | |
gmaps04.html
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | |
mapPage_04.js
1 2 3 4 5 6 7 8 9 10 11 12 | |
gmaps05.html
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | |
mapPage_05.js
1 2 3 4 5 6 7 8 9 10 11 12 | |
gmaps06.html
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | |
mapPage_06.js
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | |
gmaps07.html
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | |
mapPage_07.js
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | |
gmaps08.html
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | |
mapPage_08.js
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 | |
gmaps09.html
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | |
mapPage_09.js
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 | |
gmaps10.html
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | |
mapPage_10.js
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 | |
Styled Maps Documentation | Styled Maps Wizard
Google Maps Styled Maps Wizard link
gmap_styled.html
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | |
mapPage_styled.js
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 | |
Some particularly relevant sections: Introduction (0:00 - 10:30) | Google Maps API Integration (21:40 - 34:42) | Summary and Links (52:00 52:40)
Fusion Tables Documentation/Help
Google Fusion Tables Introduction Video link
gmaps_events.html
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 | |
gmaps_events.js
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 | |
For example, a census vector data product might include the geometries that define census tracts and attributes associated with each geometry: population, income, etc.
Raster data are frequently used to represent values for phenomena that vary continuously across space (e.g. elevation, concentration of air pollutants, depth to ground water, etc. )
These values are encoded over a regular grid of observation locations with a specified grid spacing - often referred to as the spatial resolution of the dataset (i.e. 10m resolution for a standard USGS Digital Elevation Model product)
Often parts of data collections that are repeated (i.e. remote sensing data products)
These libraries are the data access and processing foundation for a growing number of open source and commercial mapping systems
Information and documentation: GDAL Home Page | OGR Home Page
A catalog of numeric codes and associated coordinate transformation parameters is maintained by the International Association of Oil & Gas Producers (OGP) - the successor scientific organization to the European Petroleum Survey Group (EPSG)
These numeric codes are used by many desktop and online mapping systems to document and represent the coordinate systems of available data and services
Links to an online version of the registry and downloadable databases of the registry are available from: http://www.epsg.org/Geodetic.html.
The parameters that define a map projection may be looked up in a number of online locations:
ENIAC Computer
IBM 704 Mainframe Computer
Model 33 ASR Teletype
TeleVideo 925 ASCII Terminal
IBM 5150 Personal Computer
Apple I Personal Computer
World Internet Hosts 1/94-1/13. Image courtesy IWS - http://www.isc.org/services/survey/
The current networking computing model consists of Components Interacting with Each Other
What are components?
What does it mean to interact?
SOA Illustration
Database systems
File-based data
May be “chained” together to create a processing “workflow”. Output from one processing service may be used as the input to another
Comparison of OGC Service Models
WMS request result for Bernalillo County Landsat Mosaic from NM RGIS link
http://gstore.unm.edu/apps/rgis/datasets/
b030ab7b-86e3-4c30-91c0-f427303d5c77/
services/ogc/wms?
VERSION=1.1.1&&
SERVICE=WMS&
REQUEST=GetMap&
SRS=EPSG:4326&
FORMAT=image/jpeg&
STYLES=&
LAYERS=bernalillo_tm2011&
TRANSPARENT=TRUE&
WIDTH=521&
HEIGHT=200&
bbox=-107.207,34.8404,-106.143,35.2487
GetCapabilitiesGetMapGetFeatureInfoGetCapabilitiesDescribeFeatureTypeGetFeature/GetFeatureWithLockGetGmlObjectLockFeatureTransactionGetCapabilitiesDescribeCoverageGetCoverageImplementation information based upon OGC Implementation Statistics - Accessed 2/2016
Implementation information based upon OGC Implementation Statistics - Accessed 2/202016
The OGC web service specifications support key geospatial data access requirements
The OGC data and representation standards support data exchange and higher level representation
SGML Relationship with XML and HTML
From XML 1.0 (5th ed.) Recommendation
1 2 3 4 5 6 7 8 | |
XML Source (modified from original): w3schools
Includes XML Declaration and Comment
1 2 | |
Define blocks of content
3 4 5 6 7 8 | |
3 4 5 6 7 8 | |
<br />4 5 6 7 | |
Define additional information about elements as name=value pairs.
7 | |
The material contained between the opening and closing tags of an Element.
7 | |
Why is this XML well-formed but not valid?
There is no DTD or Schema defined for the document against which it can be validated
1 2 3 4 5 6 7 8 | |
<!DOCTYPE greeting SYSTEM "hello.dtd">
<![CDATA[<greeting>Hello, world!</greeting>]]>
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | |
folder elementsIllustration of polygon in both planar and terrain surface
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | |
Example from: KML 2.2 Specification (fig. 6, pg. 21)
New Mexico State Boundary KML File | KMZ File (from NM RGIS)
OGC KML Implementation specification
GetCapabilities) - an XML file representing information about a specific WMS service and its component layersGetMap) - graphic files representing one or more layers from a single WMS service for a specified area of interest, and, optionally, for a specified point in timeGetFeatureInfo) - a basic representation (in a variety of formats) of the attributes associated with a specific pixel location in a map image| Request Parameter | 1.0 | 1.1 | 1.1.1 | 1.3.0 | Description |
|---|---|---|---|---|---|
| WMTVER = 1.0.0 | R | Request version | |||
| VERSION = version | O | O | O | Request version | |
| SERVICE = WMS | R | R | R | R | Service type |
| REQUEST = capabilities | R | Request name | |||
| REQUEST = GetCapabilities | R | R | R | Request name | |
| UPDATESEQUENCE = string | O | O | O | Sequence number or string for cache control | |
| Vendor-specific parameters | O | Vendor-specific parameters |
R=Required / O=Optional
| Request Parameter | 1.0 | 1.1 | 1.1.1 | 1.3.0 | Description |
|---|---|---|---|---|---|
| WMTVER = 1.0.0 | R | Request version | |||
| VERSION = version | R | R | R | Request version. | |
| REQUEST = map | R | Request name. | |||
| REQUEST = GetMap | R | R | R | Request name. | |
| LAYERS = layer_list | R | R | R | R | Comma-separated list of one or more map layers. Optional (ver. 1.1, 1.1.1) if SLD parameter is present. |
| STYLES = style_list | R | R | R | R | Comma-separated list of one rendering style per requested layer. Optional if SLD parameter is present. |
| SRS = namespace:identifier | R | R | R | Spatial Reference System. | |
| CRS = namespace:identifier | R | Spatial Reference System. | |||
| BBOX = minx,miny,maxx,maxy | R | R | R | R | Bounding box corners (lower left, upper right) in SRS units. |
| WIDTH = output_width | R | R | R | R | Width in pixels of map picture. |
| HEIGHT = output_height | R | R | R | R | Height in pixels of map picture. |
| FORMAT = output_format | R | R | R | R | Output format of map. |
| TRANSPARENT = TRUE or FALSE | O | O | O | O | Background transparency of map (default = FALSE). |
| BGCOLOR = color_value | O | O | O | O | Hexadecimal red-green-blue color value for the background color (default = 0xFFFFFF). |
| EXCEPTIONS = exception_format | O | O | O | O | The format in which exceptions are to be reported by the WMS (default = XML). |
| TIME = time | O | O | O | Time value of layer desired. | |
| ELEVATION = elevation | O | O | O | Elevation of layer desired. | |
| Other sample dimensions | O | O | O | Values of other dimensions as appropriate. | |
| Vendor specific parameters | O | O | O | O | Vendor specific parameters |
| Request Parameter | 1.0 | 1.1 | 1.1.1 | 1.3.0 | Description |
|---|---|---|---|---|---|
| WMTVER = 1.0.0 | R | Request version. | |||
| VERSION = version | R | R | R | Request version. | |
| REQUEST = feature_info | R | Request name. | |||
| REQUEST = GetFeatureInfo | R | R | R | Request name. | |
<map_request_copy> |
R | R | R | R | Partial copy of the Map request parameters that generated the map for which information is desired |
| QUERY_LAYERS = layer_list | R | R | R | R | Comma-separated list of one or more layers to be queried. |
| INFO_FORMAT = output_format | O | O | O | R | Return format of feature information (MIME type). |
| FEATURE_COUNT = number | O | O | O | O | Number of features about which to return information (default = 1). |
| X = pixel_column | R | R | R | X coordinate in pixels of feature (measured from upper left corner = 0) | |
| I = pixel_column | R | i coordinate in pixels of feature in Map CS | |||
| Y = pixel_row | R | R | R | Y coordinate in pixels of feature (measured from upper left corner = 0) | |
| J = pixel_row | R | j coordinate in pixels of feature in Map CS | |||
| EXCEPTIONS = exception_format | O | O | O | The format in which exceptions are to be reported by the WMS (default = XML). | |
| Vendor-specific parameters | O | O | O | Optional experimental parameters. |
1 2 3 4 5 | |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 | |
Sample WMS response #1
1 2 3 4 5 6 7 8 9 10 11 12 13 | |
Sample WMS response #2
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | |
A KMZ file may be extracted and its contents examined by many zipfile utilities if you replace the .kmz extension with .zip prior to trying to extract↩